//import UIKit
//import swiftScan
//import AVFoundation
//
//class SaomaViewController: LBXScanViewController {
//    
//    var supportedBarcodeTypes: [AVMetadataObject.ObjectType] = [] {
//        didSet {
//            updateSupportedCodeTypes()
//        }
//    }
//    
//    // MARK: - UI Components
//    private lazy var torchButton: UIButton = {
//        let button = UIButton(type: .system)
//        if #available(iOS 13.0, *) {
//            button.setImage(UIImage(systemName: "bolt.fill"), for: .normal)
//        } else {
//            // Fallback on earlier versions
//        }
//        button.tintColor = .white
//        button.backgroundColor = UIColor(white: 0, alpha: 0.5)
//        button.layer.cornerRadius = 25
//        button.addTarget(self, action: #selector(toggleTorch), for: .touchUpInside)
//        return button
//    }()
//    
//    private lazy var resultLabel: UILabel = {
//        let label = UILabel()
//        label.font = .systemFont(ofSize: 16)
//        label.textColor = .white
//        label.backgroundColor = UIColor(white: 0, alpha: 0.7)
//        label.textAlignment = .center
//        label.numberOfLines = 0
//        label.layer.cornerRadius = 8
//        label.layer.masksToBounds = true
//        label.isHidden = true
//        return label
//    }()
//    
//    // MARK: - Lifecycle
//    override func viewDidLoad() {
//        super.viewDidLoad()
//        setupUI()
//    }
//    
//    override func viewDidAppear(_ animated: Bool) {
//        super.viewDidAppear(animated)
//        if !supportedBarcodeTypes.isEmpty {
//            updateSupportedCodeTypes()
//        }
//    }
//    
//    // MARK: - Setup
//    private func setupUI() {
//        view.addSubview(torchButton)
//        view.addSubview(resultLabel)
//        
//        torchButton.translatesAutoresizingMaskIntoConstraints = false
//        resultLabel.translatesAutoresizingMaskIntoConstraints = false
//        
//        NSLayoutConstraint.activate([
//            torchButton.centerXAnchor.constraint(equalTo: view.centerXAnchor),
//            torchButton.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor, constant: -40),
//            torchButton.widthAnchor.constraint(equalToConstant: 50),
//            torchButton.heightAnchor.constraint(equalToConstant: 50),
//            
//            resultLabel.centerXAnchor.constraint(equalTo: view.centerXAnchor),
//            resultLabel.centerYAnchor.constraint(equalTo: view.centerYAnchor),
//            resultLabel.widthAnchor.constraint(lessThanOrEqualTo: view.widthAnchor, constant: -60)
//        ])
//    }
//    
//    private func updateSupportedCodeTypes() {
//        // 方法1: 使用新属性名（推荐）
//                if scanObj?.responds(to: Selector(("codeTypes"))) == true {
////                    scanObj?.codeTypes = supportedBarcodeTypes.map { $0.rawValue }
//                }
//                // 方法2: 兼容旧版本
//                else if scanObj?.responds(to: Selector(("arrayCodeType"))) == true {
//                    scanObj?.setValue(supportedBarcodeTypes.map { $0.rawValue }, forKey: "arrayCodeType")
//                }
//                // 方法3: 直接使用AVFoundation
//                else {
//                    setupAVFoundationMetadataOutput()
//                }
//    }
//    private func setupAVFoundationMetadataOutput() {
////           guard let captureSession = scanObj?.captureSession else { return }
////           
////           // 移除现有输出
////           for output in captureSession.outputs {
////               if output is AVCaptureMetadataOutput {
////                   captureSession.removeOutput(output)
////               }
////           }
////           
////           // 添加新输出
////           let metadataOutput = AVCaptureMetadataOutput()
////           if captureSession.canAddOutput(metadataOutput) {
////               captureSession.addOutput(metadataOutput)
////               metadataOutput.metadataObjectTypes = supportedBarcodeTypes
////               metadataOutput.setMetadataObjectsDelegate(self, queue: DispatchQueue.main)
////           }
//       }
//    
//    // MARK: - Actions
//    @objc private func toggleTorch() {
//        guard let scanObj = scanObj else { return }
////        let isOn = !scanObj.torchIsOn()
//        scanObj.changeTorch()
////        torchButton.tintColor = isOn ? .yellow : .white
//    }
//    
//    // MARK: - Scan Results
//    override func handleCodeResult(arrayResult: [LBXScanResult]) {
//        guard let result = arrayResult.first else {
//            showResult(message: "未识别到有效条码", isError: true)
//            return
//        }
//        
//        if let code = result.strScanned {
//            showResult(message: "识别成功: \(code)")
//            DispatchQueue.main.asyncAfter(deadline: .now() + 1.5) { [weak self] in
//                self?.navigationController?.popViewController(animated: true)
//            }
//        } else {
//            showResult(message: "条码内容为空", isError: true)
//        }
//    }
//    
//    private func showResult(message: String, isError: Bool = false) {
//        resultLabel.text = message
//        resultLabel.backgroundColor = isError ?
//            UIColor(red: 0.8, green: 0.2, blue: 0.2, alpha: 0.7) :
//            UIColor(white: 0, alpha: 0.7)
//        resultLabel.isHidden = false
//        
//        DispatchQueue.main.asyncAfter(deadline: .now() + 2) { [weak self] in
//            self?.resultLabel.isHidden = true
//        }
//    }
//}
